package com.example.prime;

/**
 * 统计n以内的素数个数(只能被1和自身整除、0和1除外)
 * 埃筛法(100以内素数)
 * 非素数(合数) - 0和1除外
 */
public class Eth {

    private static int eratosthenes(int n) {
        // 默认数组里全部是素数
        boolean[] isPrime = new boolean[n];// false代表素数
        int count = 0;
        for (int i = 2; i < n; i++) {
            if (!isPrime[i]) {
                count++;
                // j表示和数，找到j的标记位
                for (int j = i * i; j < n; j+=i) {
                    isPrime[j] = true;
                }
            }
        }
        return count;
    }

    public static void main(String[] args) {

        int eratosthenes = eratosthenes(100);
        System.out.println(eratosthenes);

    }

}
